home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / include / linux / thread_info.h < prev    next >
C/C++ Source or Header  |  2005-10-13  |  2KB  |  93 lines

  1. /* thread_info.h: common low-level thread information accessors
  2.  *
  3.  * Copyright (C) 2002  David Howells (dhowells@redhat.com)
  4.  * - Incorporating suggestions made by Linus Torvalds
  5.  */
  6.  
  7. #ifndef _LINUX_THREAD_INFO_H
  8. #define _LINUX_THREAD_INFO_H
  9.  
  10. /*
  11.  * System call restart block. 
  12.  */
  13. struct restart_block {
  14.     long (*fn)(struct restart_block *);
  15.     unsigned long arg0, arg1, arg2, arg3;
  16. };
  17.  
  18. extern long do_no_restart_syscall(struct restart_block *parm);
  19.  
  20. #include <linux/bitops.h>
  21. #include <asm/thread_info.h>
  22.  
  23. #ifdef __KERNEL__
  24.  
  25. /*
  26.  * flag set/clear/test wrappers
  27.  * - pass TIF_xxxx constants to these functions
  28.  */
  29.  
  30. static inline void set_thread_flag(int flag)
  31. {
  32.     set_bit(flag,¤t_thread_info()->flags);
  33. }
  34.  
  35. static inline void clear_thread_flag(int flag)
  36. {
  37.     clear_bit(flag,¤t_thread_info()->flags);
  38. }
  39.  
  40. static inline int test_and_set_thread_flag(int flag)
  41. {
  42.     return test_and_set_bit(flag,¤t_thread_info()->flags);
  43. }
  44.  
  45. static inline int test_and_clear_thread_flag(int flag)
  46. {
  47.     return test_and_clear_bit(flag,¤t_thread_info()->flags);
  48. }
  49.  
  50. static inline int test_thread_flag(int flag)
  51. {
  52.     return test_bit(flag,¤t_thread_info()->flags);
  53. }
  54.  
  55. static inline void set_ti_thread_flag(struct thread_info *ti, int flag)
  56. {
  57.     set_bit(flag,&ti->flags);
  58. }
  59.  
  60. static inline void clear_ti_thread_flag(struct thread_info *ti, int flag)
  61. {
  62.     clear_bit(flag,&ti->flags);
  63. }
  64.  
  65. static inline int test_and_set_ti_thread_flag(struct thread_info *ti, int flag)
  66. {
  67.     return test_and_set_bit(flag,&ti->flags);
  68. }
  69.  
  70. static inline int test_and_clear_ti_thread_flag(struct thread_info *ti, int flag)
  71. {
  72.     return test_and_clear_bit(flag,&ti->flags);
  73. }
  74.  
  75. static inline int test_ti_thread_flag(struct thread_info *ti, int flag)
  76. {
  77.     return test_bit(flag,&ti->flags);
  78. }
  79.  
  80. static inline void set_need_resched(void)
  81. {
  82.     set_thread_flag(TIF_NEED_RESCHED);
  83. }
  84.  
  85. static inline void clear_need_resched(void)
  86. {
  87.     clear_thread_flag(TIF_NEED_RESCHED);
  88. }
  89.  
  90. #endif
  91.  
  92. #endif /* _LINUX_THREAD_INFO_H */
  93.